package com.lowca.news.service;

import java.util.Set;

import com.lowca.news.entity.Role;
import com.lowca.news.entity.User;

public interface RoleService {

	/**
	 * 创建一组角色
	 * 
	 * @param roles
	 */
	public void createRoles(Set<Role> roles);

	/**
	 * 判断当前登录的用户是否存在一个指定名称的角色
	 * 
	 * @param name
	 * @return
	 */
	public boolean existRoleByName(String name);

	/**
	 * 检查当前登录的用户是否满足一组角色中的一个或多个
	 * 
	 * @param roleNames
	 * @return
	 */
	public boolean hasAnyRoles(String... roleNames);

	/**
	 * 检查用户是否满足一组角色中的一个或多个
	 * 
	 * @param user
	 * @param roleNames
	 * @return
	 */
	public boolean hasAnyRoles(User user, String... roleNames);

	/**
	 * 给予用户某个权限
	 * 
	 * @param user
	 * @param roleName
	 */
	public void addRoleToUser(User user, String roleName);

	/**
	 * 收回用户的某个权限
	 * 
	 * @param user
	 * @param name
	 */
	public void removeRoleFromUser(User user, String roleName);
}
